1. Field of the Invention
This invention relates to the field of data processing systems. More particularly, this invention relates to the provision of cryptographic support instructions within data processing systems.
2. Description of the Prior Art
It is known to use data processing systems to perform cryptographic operations. Examples of such known cryptographic processing operations include the Secure Hash Algorithm (SHA). The SHA has a variety of different known forms including SHA-1, SHA-2, SHA256 and SHA512. These algorithms are computationally intensive.
One known approach to supporting these algorithms is to use a general purpose processor executing general purpose instruction with its general purpose register file. A problem with this approach is that the large amounts of state data which has to be manipulated in performing these algorithms, which typically can generate hash values of 160-bits and upwards, has the result that the operations often have to be split down and performed by a long sequence of individual program instructions operating on parts of the data at a time thereby resulting in a disadvantageous increase in the amount of time required to execute the algorithms and the energy consumed in executing the algorithms.
Another known approach is to provide a special purpose cryptographic support processor, such as a cryptographic coprocessor, which has dedicated circuitry for performing the algorithms and is typically initiated by passing a pointer to the start of the data to be hashed and then waiting to receive the resulting hash value. A problem with this approach is that extra cost and complexity is incurred by the provision of the special purpose cryptographic hardware. Furthermore, problems arise in integrating the operation of the special purpose hardware with the other operations of the device, such as interrupt handling, multitasking and the like, since the special purpose cryptographic hardware is difficult and complex to incorporate within the mechanisms normally provided within the data processing system to deal with such aspects of the operation with the data processing system.